flowchart TB
    pkg["locELM Package"]

    subgraph core[core/]
        domain["domain.py<br/>- Domain<br/>- CollocationPoints<br/>- SubdomainInterface"]
        networks["networks.py<br/>- LocalELMNetwork<br/>- MultiSubdomainNetwork"]
        continuity["continuity.py<br/>- ContinuityConditions"]
    end

    subgraph solvers[solvers/]
        linear["linear.py<br/>- LinearPDESolver<br/>- helmholtz_operator_1d<br/>- helmholtz_operator_2d"]
        nonlinear["nonlinear.py<br/>- NonlinearPDESolver<br/>- NLSQ-perturb<br/>- Newton-LLSQ"]
    end

    subgraph utils[utils/]
        helpers["helpers.py<br/>- error_metrics<br/>- plotting<br/>- evaluation"]
    end

    subgraph examples[examples/]
        ex1["helmholtz_1d.py"]
        ex2["helmholtz_2d.py"]
    end

    pkg --> core
    pkg --> solvers
    pkg --> utils
    pkg --> examples

    domain --> linear
    networks --> linear
    continuity --> linear

    domain --> nonlinear
    networks --> nonlinear
    continuity --> nonlinear

    helpers --> linear
    helpers --> nonlinear

    linear --> ex1
    linear --> ex2
    helpers --> ex1
    helpers --> ex2
